print(f'{"三乐购物系统":#^50}')
# 定义商品字典
commodity = {'F00001':{'name':'苹果','prince':'1.2'},'F00002':{'name':'香蕉','prince':'5.5'}}
# 定义购物车
shoping_car ={}



# 登入系统验证

def enter():
 j = 0
 while True:
    j += 1
    if j >= 3:
         print("登入失败超过三次，登入系统冻结！")
         return 0
    else:
         using_name = input("请输入你的用户名：")
         passwd = input("请输入你的密码：")
         if using_name == 'root' and passwd == '123456':
            print("系统登入成功！")
            return 1
         else:
            print("密码或者用户名输入有误，请重新输入！")

# 选购函数
def choice():
 while True:
         shop_num = input("###请输入需购买商品的编号,~ ——查看商品编号(退出按r返回上一级菜单)：")
    # 退出程序
         if shop_num == 'r':
            return 0
         elif shop_num == '~':
             print(commodity)
             continue
         if shop_num not in commodity.keys():
            input3 = input("###没有该编号商品，重新输入！exit-退出，任意键继续加购：")
            # if input3 == "~":
            #     print(commodity)
            if input3 == 'exit':
                return 0
            else:
                choice()
         print(f'你想要购买商品的名称和价格：{commodity[shop_num]}')
    #获得该编号商品的名字
         shop_name = commodity[shop_num]['name']
         buying_count = int(input("需要购买的数量："))
         money =  float(shoping_car['余额']) - (float(commodity[shop_num]['prince']) * buying_count)
         if money < 0:
             print("余额不足，加购失败")
             print(f"现有余额为：{shoping_car['余额']}")
             continue
         else:
            shoping_car[shop_name] = buying_count
            shoping_car['余额'] = money
            input2 = input("加购成功，按r返回上一级，按exit退出，&-购物车，任意键继续加购：")
    # 将购买的商品和数量写入购物车 购物车存在该商品就修改，不存在就添加
         if input2 == 'r':
            choice()
         elif input2 == 'exit':
             return 1
         elif input2 == '&':
             print(shoping_car)
         else:
             choice()

# 主函数
if enter() == 1:
    print(f'商品信息：{commodity}')
    while True:
            input2 = input("请输入&查看购物车，按exit退出,b-重新设置预算:")
            if input2 == 'b':
                budget = input("请输入你的购物预算：")
                if budget.isdigit():
                   shoping_car['余额'] = budget
                   if choice() == 0:
                     continue
                   else:
                     print("程序结束!")
                     print(f'您的购物车：{shoping_car}')
                     break
                else:
                    print("输入无效！请重新输入")
                    continue
            if input2 == '&':
                print(shoping_car)
            elif input2 == 'b':
                continue
            elif input2 == 'exit':
                print("程序结束！")
                print(f'您的购物车：{shoping_car}')
                break
            else:
                print("输入有误,重新输入！")
                continue



    # input3 = input("输入exit退出，任意键继续:")
    # if input3 == 'exit':
    #     print(shoping_car)
    #     break
    # else:
    #     choice()

